import config from "../config.js"
import http from "./http.js"
export default {
	/**
	 * 页面跳转
	 * @param {string} to 跳转链接 /pages/index/index
	 * @param {Object} param 参数 {key : value, ...}
	 * @param {string} mode 模式 
	 */
	redirectTo(url, param, mode ){
		//拼接页面间互传的数据
		if(param != undefined){
			Object.keys(param).forEach((item,index)=>{
				if(index == 0){
					url += '?'+ item + '=' + param[item];
				}else{
					url += '&' + item + '=' + param[item];
				}
			})
		}
		switch(mode){
			//关闭当前页面，跳转
			case 'redirectTo':
				uni.redirectTo({url: url});
				break;
			//关闭所有页面跳转
			case 'reLaunch':
				uni.reLaunch({url: url});
				break;
			//导航栏页面跳转
			case 'switchTab':
				uni.switchTab({url: url});
				break;
			// 跳转不清除路由缓存
			default :
				uni.navigateTo({url: url});
		}
	},
	/**
	 * 选择图片
	 * @param {string}  //num获取的一些参数
	 * @param {function} //callback获取数据之后的回调
	 * @param {b} //judge判断是否等待中
	 */
	selectImage(data = {}) {
		uni.chooseImage({
			count: data.num,
			sourceType: ['album'],
			success: (res) => {
				res.tempFilePaths.forEach((item, index) => {
					this.getFile(item, (res) => {
						if (typeof data.success == 'function') data.success(res)
					})
				})
			},
		})
	},
	/**
	 * @上传文件
	 */
	getFile(item, callback) {
		console.log("item",item)
		// return false
		uni.uploadFile({
			url: config.url + '/api/common/uploadImage',
			filePath: item,
			name: 'file',
			success: (res) => {
				if (typeof callback == 'function') callback(JSON.parse(res.data).data[0].filepath)
			},
			fail:err=>{
				console.log("错误的数据",err)
			}
		});
	},
	/**
	 * 复制
	 * @param {Object} callback
	 */
	copy(value, callback) {
		uni.setClipboardData({
			data: value,
			success: () => {
				typeof callback == 'function' && callback();
			},
			fail:(err)=>{
				// console.log("数据返回",err)
			}
		});
	},
	/**
	 * 时间戳转时间
	 */
	timestampToTime(timestamp) {
		var date = new Date(timestamp * 1000);//时间戳为10位需*1000，时间戳为13位的话不需乘1000
		var Y = date.getFullYear() + '-';
		var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
		var D = date.getDate() + ' ';
		var h = date.getHours() + ':';
		var m = date.getMinutes() + ':';
		if(m.split('').length == 2)  m = '0' + date.getMinutes() + ':';
		var s = date.getSeconds();
		if(s.toString().split('').length == 1)  s = '0' + s;
		return Y+M+D+h+m+s;
	},
	/**
	 * 保存图片到本地
	 * @param {Object} url 图片链接
	 */
	getImglocal(url){
		// #ifdef APP
		// 先下载图片
		uni.downloadFile({
			url:url,
			success: (res) => {
				console.log(res);
				// 获取到图片本地地址后再保存图片到相册（因为此方法不支持远程地址）
				uni.saveImageToPhotosAlbum({
					filePath: res.tempFilePath,
					success: () => {
						uni.showToast({
							title: "保存成功！",
							icon:'none'
						});
					},
					fail: (err) => {
						uni.showToast({
							title: "保存失败",
							icon:'none'
						});
					},
				});
			},
		});
		// #endif
		// #ifdef H5
			var oA = document.createElement("a");
			oA.download = ''; // 设置下载的文件名，默认是'下载'
			oA.href = url;
			document.body.appendChild(oA);
			oA.click();
			oA.remove(); // 下载之后把创建的元素删除
		// #endif
	},
	
	/**
	 * 图片拼接
	 */
	img(src,type){
		if(!src) return;
		if(src.includes('http')){
			return src
		} else {
			if(type == 'upload'){
				return config.srcUrl + '/uploads' + src;
			} else {
				return config.srcUrl + src;
			}
		}
	},
	
	//tips提示框
	taost(params){
		uni.showToast({
			title:params.title,
			icon:params.icon ? params.icon : 'none'
		})
		setTimeout(()=>{
			typeof params.callback == 'function' ? params.callback() : ''
		},1000)
	},
	/**
	 * 时间戳解析
	 */
	gettime(time){
		// 假设有一个十位数的时间戳
		const timestampInSeconds = time; // 代表 2022年1月8日 上午8:00:00 UTC
		
		// 将秒级时间戳转换为毫秒级时间戳
		const timestampInMilliseconds = timestampInSeconds * 1000;
		
		// 使用Date对象进行解析
		const date = new Date(timestampInMilliseconds);
		
		// 提取日期和时间信息
		const year = date.getFullYear();
		const month = date.getMonth() + 1; // 月份是从0开始计数，因此需要加1
		const day = date.getDate();
		const hours = date.getHours();
		const minutes = date.getMinutes();
		const seconds = date.getSeconds();
		
		// 构建可读的日期和时间字符串
		const formattedDate = `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`;
		const formattedTime = `${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}:${seconds < 10 ? '0' + seconds : seconds}`;
		
		return formattedDate + "  " + formattedTime

	}
}